home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / initramfs-tools / scripts / nfs < prev   
Text File  |  2008-06-24  |  2KB  |  84 lines

  1. # NFS filesystem mounting            -*- shell-script -*-
  2.  
  3. # FIXME This needs error checking
  4.  
  5. retry_nr=0
  6.  
  7. # parse nfs bootargs and mount nfs 
  8. do_nfsmount()
  9. {
  10.  
  11.     configure_networking
  12.  
  13.     # get nfs root from dhcp
  14.     if [ "x${NFSROOT}" = "xauto" ]; then
  15.         # check if server ip is part of dhcp root-path
  16.         if [ "${ROOTPATH#*:}" = "${ROOTPATH}" ]; then
  17.             NFSROOT=${ROOTSERVER}:${ROOTPATH}
  18.         else
  19.             NFSROOT=${ROOTPATH}
  20.         fi
  21.  
  22.     # nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
  23.     elif [ -n "${NFSROOT}" ]; then
  24.         # nfs options are an optional arg
  25.         if [ "${NFSROOT#*,}" != "${NFSROOT}" ]; then
  26.             NFSOPTS="-o ${NFSROOT#*,}"
  27.         fi
  28.         NFSROOT=${NFSROOT%%,*}
  29.         if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then
  30.             NFSROOT=${ROOTSERVER}:${NFSROOT}
  31.         fi
  32.     fi
  33.  
  34.     if [ -z "${NFSOPTS}" ]; then
  35.         NFSOPTS="-o retrans=10"
  36.     fi
  37.  
  38.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-premount"
  39.     run_scripts /scripts/nfs-premount
  40.     [ "$quiet" != "y" ] && log_end_msg
  41.  
  42.     if [ ${readonly} = y ]; then
  43.         roflag="-o ro"
  44.     else
  45.         roflag="-o rw"
  46.     fi
  47.  
  48.     nfsmount -o nolock ${roflag} ${NFSOPTS} ${NFSROOT} ${rootmnt}
  49. }
  50.  
  51. # NFS root mounting
  52. mountroot()
  53. {
  54.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-top"
  55.     run_scripts /scripts/nfs-top
  56.     [ "$quiet" != "y" ] && log_end_msg
  57.  
  58.     modprobe nfs
  59.     # For DHCP
  60.     modprobe af_packet
  61.  
  62.     # Default delay is around 180s
  63.     # FIXME: add usplash_write info
  64.     if [ -z "${ROOTDELAY}" ]; then
  65.         delay=180
  66.     else
  67.         delay=${ROOTDELAY}
  68.     fi
  69.  
  70.     # loop until nfsmount succeds
  71.     while [ ${retry_nr} -lt ${delay} ] && [ ! -e ${rootmnt}${init} ]; do
  72.         [ ${retry_nr} -gt 0 ] && \
  73.         [ "$quiet" != "y" ] && log_begin_msg "Retrying nfs mount"
  74.         do_nfsmount
  75.         retry_nr=$(( ${retry_nr} + 1 ))
  76.         [ ! -e ${rootmnt}${init} ] && /bin/sleep 1
  77.         [ ${retry_nr} -gt 0 ] && [ "$quiet" != "y" ] && log_end_msg
  78.     done
  79.  
  80.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-bottom"
  81.     run_scripts /scripts/nfs-bottom
  82.     [ "$quiet" != "y" ] && log_end_msg
  83. }
  84.